//
// Created by 86131 on 2023/11/14.
//

#include <iostream>
using namespace std;
#include "../树/MinHeep.h"

int main()
{
    MinHeap<int> a;
    // 优先队列数据结构，包含三个参数，第一参数是数据类型，第二个参数是容器，第三个参数是排序类型
    // greater|less
    int n, res = 0;
    cin >> n;
    for(int i = 0; i < n; i++)
    {
        int t;
        cin >> t;
        a.insert(t);
    }
    while(a.getsize()>0)
    {
        int x = a.extractMin();
        //a.pop();
        if(a.getsize()==0)
            break;
        int y = a.extractMin();
        x += y;
        res += x;
        a.insert(x);
    }
    cout << res << endl;
    return 0;
}